home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / sscal1d.z / sscal1d
Text File  |  1998-10-30  |  6KB  |  133 lines

  1.  
  2.  
  3.  
  4. ssssssssccccaaaallll1111dddd,,,,ddddssssccccaaaallll1111dddd((((3333FFFF))))                                        ssssssssccccaaaallll1111dddd,,,,ddddssssccccaaaallll1111dddd((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ssssssssccccaaaallll1111dddd,,,, ddddssssccccaaaallll1111dddd ---- scales a 1D real sequence.
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
  12.      _F_o_r_t_r_a_n :
  13.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssssssccccaaaallll1111dddd(((( nnnn,,,, aaaallllpppphhhhaaaa,,,, aaaarrrrrrrraaaayyyy,,,, iiiinnnncccc))))
  14.           iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, iiiinnnncccc
  15.           rrrreeeeaaaallll               aaaallllpppphhhhaaaa,,,, aaaarrrrrrrraaaayyyy((((0000::::((((nnnn----1111))))****iiiinnnncccc))))
  16.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddssssccccaaaallll1111dddd(((( ssssiiiiggggnnnn,,,, nnnn,,,, pppp,,,, aaaarrrrrrrraaaayyyy,,,, iiiinnnncccc,,,, llllddddaaaa))))
  17.           iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, iiiinnnncccc
  18.           rrrreeeeaaaallll****8888             aaaallllpppphhhhaaaa,,,, aaaarrrrrrrraaaayyyy((((0000::::((((nnnn----1111))))****iiiinnnncccc))))
  19.  
  20.      _C :
  21.      ####iiiinnnncccclllluuuuddddeeee <<<<fffffffftttt....hhhh>>>>
  22.      iiiinnnntttt ssssssssccccaaaallll1111dddd (((( iiiinnnntttt nnnn,,,, ffffllllooooaaaatttt aaaallllpppphhhhaaaa,,,, ffffllllooooaaaatttt ****aaaarrrrrrrraaaayyyy,,,, iiiinnnntttt iiiinnnncccc))));;;;
  23.      iiiinnnntttt ddddssssccccaaaallll1111dddd (((( iiiinnnntttt nnnn,,,, ddddoooouuuubbbblllleeee aaaallllpppphhhhaaaa,,,, ddddoooouuuubbbblllleeee ****aaaarrrrrrrraaaayyyy,,,, iiiinnnntttt iiiinnnncccc))));;;;
  24.  
  25.  
  26. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  27.      ssssssssccccaaaallll1111dddd and ddddssssccccaaaallll1111dddd scale a 1D real sequence of N samples.
  28.      The Fourier Transforms are not normalized so the succession Direct-
  29.      Inverse transform scales the input data by a factor equal to the size of
  30.      the transform.  ssssssssccccaaaallll1111dddd or ddddssssccccaaaallll1111dddd may be used to scale back the result.
  31.  
  32. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  33.      NNNN Integer, the number of samples in each sequence.
  34.      Unchanged on exit.
  35.  
  36.      PPPP Integer, the number of sequences.  Unchanged on exit.
  37.  
  38.      AAAAllllpppphhhhaaaa scaling floating point value.
  39.  
  40.      AAAARRRRRRRRAAAAYYYY Array containing the samples of the sequence to be scaled (in
  41.      place).
  42.  
  43.      IIIINNNNCCCC Integer, increment between two consecutive elements of a sequence.
  44.      Unchanged on exit.
  45.  
  46.      LLLLDDDDAAAA Integer, leading dimension: increment between the first samples of
  47.      two consecutive sequences.  Unchanged on exit.
  48.  
  49.  
  50. EEEExxxxaaaammmmpppplllleeee ooooffff CCCCaaaalllllllliiiinnnngggg SSSSeeeeqqqquuuueeeennnncccceeee
  51.      Given a 1024 real values sequence.  We successively apply a Direct
  52.      Fourier Transform, an Inverse Fourier Trasnform and finally scale back
  53.      the result by a factor 1/N (1/1024.)-
  54.      This sequence DirectFFT-InverseFFT-Scaling is equivalent to the identity
  55.      operator and the final sequence should be equal (with round-off
  56.      precision) to the initial sequence.
  57.      Elements of each sequence are stored with increment (stride) 1.
  58.      _F_o_r_t_r_a_n
  59.           real array(0:1024-1), coeff(1024+15)
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ssssssssccccaaaallll1111dddd,,,,ddddssssccccaaaallll1111dddd((((3333FFFF))))                                        ssssssssccccaaaallll1111dddd,,,,ddddssssccccaaaallll1111dddd((((3333FFFF))))
  71.  
  72.  
  73.  
  74.          call scfft1dui( 1024, coeff)
  75.           call scfft1du( -1, 1024, array, 1, coeff)
  76.           call scfft1du(  1, 1024, array, 1, coeff)
  77.           call sscal1d( 1024, (1./real(1024)), array,1)
  78.  
  79.      _C
  80.           #include <fft.h>
  81.           float array[1024], *coeff;
  82.           coeff = scfft1dui( 1024, NULL);
  83.           scfft1du( -1, 1024, array, 1, coeff);
  84.           csfft1du(  1, 1024, array, 1, coeff);
  85.           sscal1d( 1024, 1./(float)1024, array, 1);
  86.  
  87.      NNNNOOOOTTTTEEEE____1111 :::: The Direct and Inverse transforms should use opposite signs -
  88.      Which one is used (+1 or -1) for Direct transform is just a matter of
  89.      convention-
  90.  
  91.      NNNNOOOOTTTTEEEE____2222 :::: The Fourier Transforms are not normalized so the succession
  92.      Direct-Inverse transform scales the input data by a factor equal to the
  93.      size of the transform.
  94.  
  95. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  96.      fft, scfft1dui, dzfft1dui, scfft1du, dzfft1du, csfft1du, zdfft1du,
  97.      sprod1du, dprod1du
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.